package com.pm.business.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.pm.common.annotation.Excel;
import com.pm.common.core.domain.BaseEntity;

/**
 * 项目基本资料对象 current_project
 * 
 * @author zxl
 * @date 2022-05-05
 */
public class CurrentProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private Long projectId;
    private Long bidProjectId;

    private List<TypePersonDTO>typePersonList;

    /** 工程名称 */
    @Excel(name = "工程名称")
    private String projectName;

    /** 建设单位 */
    @Excel(name = "建设单位")
    private String constructEnterprise;

    /** 中标时间（年-月-日） */
    @Excel(name = "中标时间", dateFormat = "yyyy-MM-dd")
    private Date bidedTime;
    private Date bidedStartTime;
    private Date bidedEndTime;
    private String bidedTimeStr;

    /** 项目预计竣工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目预计竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date estimatedCompleteTime;

    /** 竣工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completedTime;
    
    /** 中标金额（万元） */
    @Excel(name = "中标金额", scale = 2)
    private BigDecimal bidAmount;
    private String bidAmountStr;

    /** 预计投标时间（年-月-日） */
    @Excel(name = "预计投标时间", dateFormat = "yyyy-MM-dd")
    private Date estimatedBidTime;

    /** 装饰或幕墙面积（平方米） */
    @Excel(name = "装饰或幕墙面积")
    private Double wallArea;

    /** 项目经理 */
    @Excel(name = "项目经理")
    private String projectManager;
    @Excel(name = "关键点")
    private String keyPoints;

    private Integer awardNumber;

    private Integer startAmount;
    private Integer endAmount;
private String personName;
    private String personType;
    private String appPersonType;
    private String appProjectType;
    private Integer projectType;
    private List<CurrentProjectAward>awardList;
    private List<ProjectPerson> projectPersonList;
    private List<SysFileInfo> sysFileInfoList;
    /** 项目状态 */
    private Integer status;

    /** 现存项目与人员关联信息 */
    private List<CurrentProjectPresonMap> currentProjectPresonMapList;

    /** 项目文件数量 */
    private Integer infoNumber;

    public String getBidAmountStr() {
        return bidAmountStr;
    }

    public void setBidAmountStr(String bidAmountStr) {
        this.bidAmountStr = bidAmountStr;
    }

    public Date getBidedStartTime() {
        return bidedStartTime;
    }

    public void setBidedStartTime(Date bidedStartTime) {
        this.bidedStartTime = bidedStartTime;
    }

    public Date getBidedEndTime() {
        return bidedEndTime;
    }

    public void setBidedEndTime(Date bidedEndTime) {
        this.bidedEndTime = bidedEndTime;
    }

    public String getBidedTimeStr() {
        return bidedTimeStr;
    }

    public void setBidedTimeStr(String bidedTimeStr) {
        this.bidedTimeStr = bidedTimeStr;
    }

    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setConstructEnterprise(String constructEnterprise) 
    {
        this.constructEnterprise = constructEnterprise;
    }

    public String getConstructEnterprise() 
    {
        return constructEnterprise;
    }
    public void setBidedTime(Date bidedTime) 
    {
        this.bidedTime = bidedTime;
    }

    public Date getBidedTime() 
    {
        return bidedTime;
    }
    public void setEstimatedCompleteTime(Date estimatedCompleteTime) 
    {
        this.estimatedCompleteTime = estimatedCompleteTime;
    }

    public Integer getProjectType() {
        return projectType;
    }

    public void setProjectType(Integer projectType) {
        this.projectType = projectType;
    }

    public List<TypePersonDTO> getTypePersonList() {
        return typePersonList;
    }

    public void setTypePersonList(List<TypePersonDTO> typePersonList) {
        this.typePersonList = typePersonList;
    }

    public Date getEstimatedCompleteTime()
    {
        return estimatedCompleteTime;
    }
    public void setCompletedTime(Date completedTime)
    {
        this.completedTime = completedTime;
    }

    public Date getCompletedTime()
    {
        return completedTime;
    }
    public void setBidAmount(BigDecimal bidAmount) 
    {
        this.bidAmount = bidAmount;
    }

    public String getPersonName() {
        return personName;
    }

    public void setPersonName(String personName) {
        this.personName = personName;
    }

    public String getPersonType() {
        return personType;
    }

    public void setPersonType(String personType) {
        this.personType = personType;
    }

    public String getAppPersonType() {
        return appPersonType;
    }

    public void setAppPersonType(String appPersonType) {
        this.appPersonType = appPersonType;
    }

    public String getAppProjectType() {
        return appProjectType;
    }

    public void setAppProjectType(String appProjectType) {
        this.appProjectType = appProjectType;
    }

    public BigDecimal getBidAmount()
    {
        return bidAmount;
    }
    public void setEstimatedBidTime(Date estimatedBidTime) 
    {
        this.estimatedBidTime = estimatedBidTime;
    }

    public Date getEstimatedBidTime() 
    {
        return estimatedBidTime;
    }
    public void setWallArea(Double wallArea)
    {
        this.wallArea = wallArea;
    }

    public Double getWallArea()
    {
        return wallArea;
    }
    public void setProjectManager(String projectManager) 
    {
        this.projectManager = projectManager;
    }

    public String getProjectManager() 
    {
        return projectManager;
    }

    public List<CurrentProjectPresonMap> getCurrentProjectPresonMapList()
    {
        return currentProjectPresonMapList;
    }

    public void setCurrentProjectPresonMapList(List<CurrentProjectPresonMap> currentProjectPresonMapList)
    {
        this.currentProjectPresonMapList = currentProjectPresonMapList;
    }

    public Long getBidProjectId() {
        return bidProjectId;
    }

    public void setBidProjectId(Long bidProjectId) {
        this.bidProjectId = bidProjectId;
    }

    public Integer getInfoNumber() {
        return infoNumber;
    }

    public void setInfoNumber(Integer infoNumber) {
        this.infoNumber = infoNumber;
    }

    public List<CurrentProjectAward> getAwardList() {
        return awardList;
    }

    public void setAwardList(List<CurrentProjectAward> awardList) {
        this.awardList = awardList;
    }

    public String getKeyPoints() {
        return keyPoints;
    }

    public void setKeyPoints(String keyPoints) {
        this.keyPoints = keyPoints;
    }

    public Integer getStartAmount() {
        return startAmount;
    }

    public void setStartAmount(Integer startAmount) {
        this.startAmount = startAmount;
    }

    public Integer getEndAmount() {
        return endAmount;
    }

    public void setEndAmount(Integer endAmount) {
        this.endAmount = endAmount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getAwardNumber() {
        return awardNumber;
    }

    public void setAwardNumber(Integer awardNumber) {
        this.awardNumber = awardNumber;
    }

    public List<SysFileInfo> getSysFileInfoList() {
        return sysFileInfoList;
    }

    public void setSysFileInfoList(List<SysFileInfo> sysFileInfoList) {
        this.sysFileInfoList = sysFileInfoList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("projectName", getProjectName())
            .append("constructEnterprise", getConstructEnterprise())
            .append("bidedTime", getBidedTime())
            .append("estimatedCompleteTime", getEstimatedCompleteTime())
            .append("completedTime", getCompletedTime())
            .append("bidAmount", getBidAmount())
            .append("estimatedBidTime", getEstimatedBidTime())
            .append("wallArea", getWallArea())
            .append("projectManager", getProjectManager())
            .append("currentProjectPresonMapList", getCurrentProjectPresonMapList())
            .append("status", getStatus())
            .toString();
    }

    public List<ProjectPerson> getProjectPersonList() {
        return projectPersonList;
    }

    public void setProjectPersonList(List<ProjectPerson> projectPersonList) {
        this.projectPersonList = projectPersonList;
    }
}
